71 research outputs found

    Analyzing multiple conflicts in SAT: an experimental evaluation

    Get PDF
    Unit propagation and conflict analysis are two essential ingredients of CDCL SAT Solving. The order in which unit propagation is computed does not matter when no conflict is found, because it is well known that there exists a unique unit-propagation fixpoint. However, when a conflict is found, current CDCL implementations stop and analyze that concrete conflict, even though other conflicts may exist in the unit-propagation closure. In this experimental evaluation, we report on our experience in modifying this concrete aspect in the CaDiCaL SAT Solver and try to answer the question of whether we can improve the performance of SAT Solvers by the analysis of multiple conflicts.All authors are supported by grant PID2021-122830OB-C43, funded by MCIN/AEI/ 10.13039/501100011033 and by “ERDF: A way of making Europe”Peer ReviewedPostprint (published version

    Proving termination through conditional termination

    Get PDF
    We present a constraint-based method for proving conditional termination of integer programs. Building on this, we construct a framework to prove (unconditional) program termination using a powerful mechanism to combine conditional termination proofs. Our key insight is that a conditional termination proof shows termination for a subset of program execution states which do not need to be considered in the remaining analysis. This facilitates more effective termination as well as non-termination analyses, and allows handling loops with different execution phases naturally. Moreover, our method can deal with sequences of loops compositionally. In an empirical evaluation, we show that our implementation VeryMax outperforms state-of-the-art tools on a range of standard benchmarks.Peer ReviewedPostprint (author's final draft

    Joc d’estructures de dades i algorismes

    Get PDF
    L'activitat consisteix en la implementació d'un jugador per a un joc d'ordinador. L'objectiu és que els estudiants hi apliquin els algorismes i estructures de dades explicats en el curs. Un joc consisteix en un tauler on es mouen agents controlats pels jugadors. Segons les seves accions, cada jugador rep una puntuació, que en finalitzar la partida en determina la classificació. En el joc no hi ha interacció humana: els programes dels estudiants estan escrits abans de cada partida. Per programar un jugador, els estudiants disposen d'informació completa sobre l'estat del tauler i de tots els jugadors. La documentació del joc explica la interfície que el programa de l'estudiant o estudianta ha d'usar per comunicar-se amb el programa principal. Els estudiants disposen d'un servidor web al qual envien els seus jugadors. A més, se'ls proporciona el codi font del joc per poder-ne desenvolupar localment la implementació. L'activitat consta de dues fases. A la primera, els estudiants han de vèncer un jugador de prova, el "beneit", implementat pel professorat i que segueix una estratègia simple. A la segona fase, els estudiants que han superat la primera participen en una eliminatòria per determinar el millor jugador del quadrimestre.Peer Reviewe

    A parametric approach for smaller and better encodings of cardinality constraints

    Get PDF
    Adequate encodings for high-level constraints are a key ingredient for the application of SAT technology. In particular, cardinality constraints state that at most (at least, or exactly) k out of n propositional variables can be true. They are crucial in many applications. Although sophisticated encodings for cardinality constraints exist, it is well known that for small n and k straightforward encodings without auxiliary variables sometimes behave better, and that the choice of the right trade-off between minimizing either the number of variables or the number of clauses is highly application-dependent. Here we build upon previous work on Cardinality Networks to get the best of several worlds: we develop an arc-consistent encoding that, by recursively decomposing the constraint into smaller ones, allows one to decide which encoding to apply to each sub-constraint. This process minimizes a function λ·num- vars + num-clauses, where λ is a parameter that can be tuned by the user. Our careful experimental evaluation shows that (e.g., for λ = 5) this new technique produces much smaller encodings in variables and clauses, and indeed strongly improves SAT solvers' performance.Postprint (author’s final draft

    Incomplete SMT techniques for solving non-linear formulas over the integers

    Get PDF
    We present new methods for solving the Satisfiability Modulo Theories problem over the theory of QuantifierFree Non-linear Integer Arithmetic, SMT(QF-NIA), which consists of deciding the satisfiability of ground formulas with integer polynomial constraints. Following previous work, we propose to solve SMT(QF-NIA) instances by reducing them to linear arithmetic: non-linear monomials are linearized by abstracting them with fresh variables and by performing case splitting on integer variables with finite domain. For variables that do not have a finite domain, we can artificially introduce one by imposing a lower and an upper bound and iteratively enlarge it until a solution is found (or the procedure times out). The key for the success of the approach is to determine, at each iteration, which domains have to be enlarged. Previously, unsatisfiable cores were used to identify the domains to be changed, but no clue was obtained as to how large the new domains should be. Here, we explain two novel ways to guide this process by analyzing solutions to optimization problems: (i) to minimize the number of violated artificial domain bounds, solved via a Max-SMT solver, and (ii) to minimize the distance with respect to the artificial domains, solved via an Optimization Modulo Theories (OMT) solver. Using this SMT-based optimization technology allows smoothly extending the method to also solve Max-SMT problems over non-linear integer arithmetic. Finally, we leverage the resulting Max-SMT(QF-NIA) techniques to solve ∃∀ formulas in a fragment of quantified non-linear arithmetic that appears commonly in verification and synthesis applications.Peer ReviewedPostprint (author's final draft

    Compositional safety verification with Max-SMT

    Get PDF
    We present an automated compositional program verification technique for safety properties based on conditional inductive invariants. For a given program part (e.g., a single loop) and a postcondition, we show how to, using a Max-SMT solver, an inductive invariant together with a precondition can be synthesized so that the precondition ensures the validity of the invariant and that the invariant implies the postcondition. From this, we build a bottom-up program verification framework that propagates preconditions of small program parts as postconditions for preceding program parts. The method recovers from failures to prove the validity of a precondition, using the obtained intermediate results to restrict the search space for further proof attempts. As only small program parts need to be handled at a time, our method is scalable and distributable. The derived conditions can be viewed as implicit contracts between different parts of the program, and thus enable an incremental program analysis.Peer ReviewedPostprint (published version

    SAT Modulo Linear Arithmetic for Solving Polynomial

    Get PDF
    Polynomial constraint solving plays a prominent role in several areas of hardware and software analysis and verification, e.g., termination proving, program invariant generation and hybrid system verification, to name a few. In this paper we propose a new method for solving non-linear constraints based on encoding the problem into an SMT problem considering only linear arithmetic. Unlike other existing methods, our method focuses on proving satisfiability of the constraints rather than on proving unsatisfiability, which is more relevant in several applications as we illustrate with several examples. Nevertheless, we also present new techniques based on the analysis of unsatisfiable cores that allow one to efficiently prove unsatisfiability too for a broad class of problems. The power of our approach is demonstrated by means of extensive experiments comparing our prototype with state-of-the-art tools on benchmarks taken both from the academic and the industrial world

    Jutge.org: characteristics and experiences

    Get PDF
    Jutge.org is an open educational online programming judge designed for students and instructors, featuring a repository of problems that is well organized by courses, topics and difficulty. Internally, Jutge.org uses a secure and efficient architecture and integrates modern verification techniques, formal methods, static code analysis and data mining. Jutge.org has exhaustively been used during the last decade at the Universitat Politecnica de Catalunya to strengthen the learn-by-doing approach in several courses. This paper presents the main characteristics of Jutge.org and shows its use and impact in a wide range of courses covering basic programming, data structures, algorithms, artificial intelligence, functional programming and circuit design.Peer ReviewedPostprint (author's final draft

    Combined kinetic analysis of SARS-CoV-2 RNAemia, N-antigenemia and virus-specific antibodies in critically ill adult COVID-19 patients

    Get PDF
    Combined kinetic analysis of plasma SARS‐CoV‐2 RNAemia, Nucleocapsid (N)‐antigenemia and virus‐specific antibodies may help ascertain the role of antibodies in preventing virus dissemination in COVID‐19 patients. We performed this analysis in a cohort of 71 consecutive critically ill COVID‐19 patients (49 male; median age, 65 years) using RT‐PCR assay, lateral flow immunochromatography method and receptor binding domain (RBD) and N‐based immunoassays. A total of 338 plasma specimens collected at a median of 12 days after symptoms onset were available for analyses. SARS‐ CoV‐2 RNAemia and N‐antigenemia were detected in 37 and 43 specimens from 26 (36.5%) and 30 (42.2%) patients, respectively. Free RNA was the main biological form of SARS‐CoV‐2 found in plasma. The detection rate for both viral components was associated with viral load at the upper respiratory tract. Median time to SARS‐CoV‐2‐RBD antibody detection was 14 days (range, 4-38) from onset of symptoms. Decreasing antibody levels were observed in parallel to increasing levels of both RNAemia and N‐antigenemia, yet overall a fairly modest inverse correlation (Rho = −0.35; P < 0.001) was seen between virus RNAemia and SARS‐CoV‐2‐RBD antibody levels. The data cast doubts on a major involvement of antibodies in virus clearance from the bloodstream within the timeframe examined

    Effects of intubation timing in patients with COVID-19 throughout the four waves of the pandemic : a matched analysis

    Get PDF
    The primary aim of our study was to investigate the association between intubation timing and hospital mortality in critically ill patients with COVID-19-associated respiratory failure. We also analysed both the impact of such timing throughout the first four pandemic waves and the influence of prior non-invasive respiratory support on outcomes. This is a secondary analysis of a multicentre, observational and prospective cohort study that included all consecutive patients undergoing invasive mechanical ventilation due to COVID-19 from across 58 Spanish intensive care units (ICU) participating in the CIBERESUCICOVID project. The study period was between 29 February 2020 and 31 August 2021. Early intubation was defined as that occurring within the first 24 h of intensive care unit (ICU) admission. Propensity score (PS) matching was used to achieve balance across baseline variables between the early intubation cohort and those patients who were intubated after the first 24 h of ICU admission. Differences in outcomes between early and delayed intubation were also assessed. We performed sensitivity analyses to consider a different timepoint (48 h from ICU admission) for early and delayed intubation. Of the 2725 patients who received invasive mechanical ventilation, a total of 614 matched patients were included in the analysis (307 for each group). In the unmatched population, there were no differences in mortality between the early and delayed groups. After PS matching, patients with delayed intubation presented higher hospital mortality (27.3% versus 37.1%, p =0.01), ICU mortality (25.7% versus 36.1%, p=0.007) and 90-day mortality (30.9% versus 40.2%, p=0.02) when compared to the early intubation group. Very similar findings were observed when we used a 48-hour timepoint for early or delayed intubation. The use of early intubation decreased after the first wave of the pandemic (72%, 49%, 46% and 45% in the first, second, third and fourth wave, respectively; first versus second, third and fourth waves p<0.001). In both the main and sensitivity analyses, hospital mortality was lower in patients receiving high-flow nasal cannula (n=294) who were intubated earlier. The subgroup of patients undergoing NIV (n=214) before intubation showed higher mortality when delayed intubation was set as that occurring after 48 h from ICU admission, but not when after 24 h. In patients with COVID-19 requiring invasive mechanical ventilation, delayed intubation was associated with a higher risk of hospital mortality. The use of early intubation significantly decreased throughout the course of the pandemic. Benefits of such an approach occurred more notably in patients who had received high-flow nasal cannul
    corecore